#ifndef _DDS_AD9851_H
#define _DDS_AD9851_H
#include "stm32f4xx_hal.h"

#define	DDS_GAIN_A0_HIGH()		HAL_GPIO_WritePin(ADG1408_LMC6482_A0_GPIO_Port, ADG1408_LMC6482_A0_Pin, GPIO_PIN_SET)
#define	DDS_GAIN_A0_LOW()			HAL_GPIO_WritePin(ADG1408_LMC6482_A0_GPIO_Port, ADG1408_LMC6482_A0_Pin, GPIO_PIN_RESET)

#define	DDS_GAIN_A1_HIGH()		HAL_GPIO_WritePin(ADG1408_LMC6482_A1_GPIO_Port, ADG1408_LMC6482_A1_Pin, GPIO_PIN_SET)
#define	DDS_GAIN_A1_LOW()			HAL_GPIO_WritePin(ADG1408_LMC6482_A1_GPIO_Port, ADG1408_LMC6482_A1_Pin, GPIO_PIN_RESET)

#define	DDS_GAIN_A2_HIGH()		HAL_GPIO_WritePin(ADG1408_LMC6482_A2_GPIO_Port, ADG1408_LMC6482_A2_Pin, GPIO_PIN_SET)
#define	DDS_GAIN_A2_LOW()			HAL_GPIO_WritePin(ADG1408_LMC6482_A2_GPIO_Port, ADG1408_LMC6482_A2_Pin, GPIO_PIN_RESET)


#define AD9851_WCLK_HIGH()		HAL_GPIO_WritePin(DDS_W_CLK_GPIO_Port, DDS_W_CLK_Pin, GPIO_PIN_SET)
#define AD9851_WCLK_LOW()			HAL_GPIO_WritePin(DDS_W_CLK_GPIO_Port, DDS_W_CLK_Pin, GPIO_PIN_RESET)

#define AD9851_DATA_HIGH()		HAL_GPIO_WritePin(DDS_D7_GPIO_Port, DDS_D7_Pin, GPIO_PIN_SET)
#define AD9851_DATA_LOW()			HAL_GPIO_WritePin(DDS_D7_GPIO_Port, DDS_D7_Pin, GPIO_PIN_RESET)

#define AD9851_FQUD_HIGH()		HAL_GPIO_WritePin(DDS_FQ_UD_GPIO_Port, DDS_FQ_UD_Pin, GPIO_PIN_SET)
#define AD9851_FQUD_LOW()			HAL_GPIO_WritePin(DDS_FQ_UD_GPIO_Port, DDS_FQ_UD_Pin, GPIO_PIN_RESET)

#define AD9851_RESET_HIGH()		HAL_GPIO_WritePin(DDS_RESET_GPIO_Port, DDS_RESET_Pin, GPIO_PIN_SET)
#define AD9851_RESET_LOW()		HAL_GPIO_WritePin(DDS_RESET_GPIO_Port, DDS_RESET_Pin, GPIO_PIN_RESET)

void DDSGainSel(uint8_t sel);
void Ad9851Init(void);
void Ad9851SetFrequency(unsigned int frequence,unsigned char enable);
uint32_t	DDSTestStart(uint8_t channel,uint32_t frequence,uint8_t enable,uint8_t pga);
uint32_t	DDS2TestStart(uint8_t channel,uint32_t frequence,uint8_t enable,uint8_t pga);

#endif
